Presently, in computer systems, a large portion of physical memory is often used to store disk data that might possibly be used in the future; if it is not used, that memory is wasted or “idle”. Similar methods are used in a virtualized computer system and, as a result, many virtual machines (VMs) may each have large amounts of idle memory. One method called “ballooning” allows idle memory from one VM (VM1) to be transferred to another VM (VM2), but ballooning has significant weaknesses, notably that it cannot respond rapidly enough to accommodate constantly changing demands in the computing environment, and it is difficult to determine the amount of memory that is needed by VM2 and that the memory can be safely surrendered by VM1. These deficiencies result in significantly reduced performance which limits the broad application of ballooning. Lastly, in a virtualized system large amounts of physical memory are often left unassigned to any specific VM—or left “fallow”—for short or long periods of time. Because of the large amounts of idle memory in VMs, the limitations of ballooning, and the large amount of memory left fallow in a virtualized system, physical memory in most virtualized computer systems in used inefficiently, incurring significant performance costs, capital costs (such as the purchase of unnecessary additional memory), and variable IT costs (i.e., floorspace, power, cooling, etc.). Hence, there is a need for improved methods and systems in the art of managing physical memory in virtualized computing environments.